#!/usr/bin/python
# -*- coding: UTF-8 -*-


name = "hello, world"  # 全局变量


def method_2():
    """
    两个函数里面定义的同名变量，作用域不冲突
    """
    a = 1
    b = 2
    c = 3
    print(a, b, c)

    # 情况1：函数method_2里面调用method_1，传递同名变量
    input_param = "hello, world"  # 这里会告警，和main里面定义的变量重名
    method_1(input_param)

    # 情况2：函数method_2里面调用method_1，传递非同名变量
    method_1(a)


def method_3():
    """
    嵌套函数里面的作用域，内层可以访问外层变量
    """
    a = 1
    b = 2

    def inner():
        c = 3
        print(a, b, c)


def method_1(input_param):  # 这里会告警，和main里面定义的变量重名
    a = 1
    b = 2
    c = 3
    print(a, b, c, input_param)

    input_param = "good_bye"  # 这里会告警，和main里面定义的变量重名
    print(input_param)


def other():
    # 打印在main里面定义的变量input_param，该变量自动是全局变量作用域
    print(input_param)


if __name__ == '__main__':
    # TODO main方法里面调用method_1，传递同名变量; 会导致method_1, method_2函数里面的同名变量input_param警告
    input_param = "hello, world"
    # method_1(input_param)
    # print(input_param)

    # 在main里面定义的变量是全局变量
    other()
    pass
